package analyticsServer;

import java.rmi.Remote;
import java.rmi.RemoteException;
import managementClient.IClientRMI;

/**
 *
 * @author Group 95
 */
public interface IAnalyticsServer extends Remote
{
    /**
     * Is invoked by management Clients, to register for notifications.
     * @param regex Regular Expression to filter the events, the client wants
     * @param callback Callback Object reference, used to send Notifications to the client
     * @return unique Subscription identifier String
     */
    public String subscribe(String regex,IClientRMI callback) throws RemoteException;
    
    public void processEvent(Event event) throws RemoteException;
    
    boolean unsubscribe(String id) throws RemoteException;
}
